package practiceProjects;

import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.time.temporal.ChronoUnit;
import java.util.Locale;

/**
 * @Project ：learn_java
 * @File ：LongVacationIntervalTime.java
 * @IDE ：IntelliJ IDEA
 * @Author ：自由如风间
 * @Date ：2025/5/18 09:12
 * @Description ：计算《悠长假期》放映日期的间隔时间
 */


public class LongVacationIntervalTime {

    public static LocalDate getDate(String day) {
        /*
        // 自己写的不调用api的初级方法
        String[] parts = day.replaceAll("[年月日]", " ").split(" ");
        Integer[] s = Arrays.stream(parts)
                .filter(str -> !str.isEmpty()) // 过滤空字符串
                .map(Integer::parseInt)        // 转换为 Integer
                .toArray(Integer[]::new);      // 收集到 Integer 数组
        LocalDate date = LocalDate.of(s[0], s[1], s[2]);
        */

        // 定义日期格式
        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy年M月d日", Locale.CHINA);

        // 解析字符串为 LocalDate
        LocalDate date = LocalDate.parse(day, formatter);
        return date;
    }

    public static void main(String[] args) {
        String[] days = {
                "1996年4月15日",
                "1996年4月22日",
                "1996年4月29日",
                "1996年5月6日",
                "1996年5月13日",
                "1996年5月20日",
                "1996年5月27日",
                "1996年6月3日",
                "1996年6月10日",
                "1996年6月17日",
                "1996年6月24日"
        };

        for (int i = 1; i < days.length; i++) {
            LocalDate startDate = getDate(days[i - 1]);
            LocalDate endDate = getDate(days[i]);
            // 计算天数间隔（不包含结束日期）
            long intervalDays = ChronoUnit.DAYS.between(startDate, endDate);
            System.out.println("第" + (i) + "集到" + "第" + (i + 1) + "集间隔 " + intervalDays + "天");
        }
    }
}
